package com.vecspace.data.model;

import java.util.List;

/**用于用于Service和Controller封装返回数据<br>
 * &lt;T&gt; 列表中数据的类名 <br>
 * @version 1.0
 * @author wanghua
 * @reviewer  
 * @createTime 2021年9月4日 下午4:48:35
 */
public class ListBO<T> extends BaseBO{
	protected List<T> items;
	protected IPagination pager;

	/**锁定状态， 0未锁定，1已锁定，  5已归档。items的整体锁定状态，一般由items的上级数据的锁定状态决定， 默认不使用锁定状态,可选值参考 DataLockState*/
	protected Integer lockState;
	/**锁定状态， 0未锁定，1已锁定，  5已归档。items的整体锁定状态，一般由items的上级数据的锁定状态决定， 默认不使用锁定状态,可选值参考 DataLockState*/
	public Integer getLockState() {
		return lockState;
	}
	/**锁定状态， 0未锁定，1已锁定，  5已归档。items的整体锁定状态，一般由items的上级数据的锁定状态决定， 默认不使用锁定状态,可选值参考 DataLockState*/
	public void setLockState(Integer lockState) {
		this.lockState = lockState;
	}

	public ListBO() {
		
	}

	public ListBO(List<T> items) {
		this.setItems(items);
	}
	
	public ListBO(List<T> items, IPagination pager) {
		this.setItems(items);
		this.setPager(pager);
	}

	public static <T> ListBO<T> newInstance(List<T> items){
		return new ListBO<T>(items);
	}
	
	public static <T> ListBO<T> newInstance(List<T> items, IPagination pager){
		return new ListBO<T>(items, pager);
	}
	
	public List<T> getItems() {
		return items;
	}
	public void setItems(List<T> items) {
		this.items = items;
	}

	public IPagination getPager() {
		return pager;
	}

	public void setPager(IPagination pager) {
		this.pager = pager;
	}
		
	/**是否分页*/
	public boolean isPaged() {
		return pager != null && pager.isPaged();
	}
}
